#!/bin/bash

#=======================================================================
# lag_vim
# File ID: 6d23a156-5d3e-11df-9a9a-90e6ba3022ac
# Mekker ihop ny, fin Vim.
#=======================================================================

function usage() {
    cat <<END

Syntax: lag_vim [valg]

Mekker ihop ny, fin Vim.

Valg (må være spesifisert alfabetisk):

-7  Lag vim7. OBS, er alpha, sier de.
-f  Fjern lockdir før man peiser videre.
-h  Skriv denne hjelpen. Må være første parameter.
-l  Lokal laging, ikke kjør update_vim-clean (CVS-oppdatering)
-p  Ikke patch filene
-x  Lag gvim med X og saker. Standard oppførsel er å ikke lage med X, 
    for det er som kjent et delay i begynnelsen hvis det er manko på 
    X-forbindelse, og Vimmene har en tendens til å daue når X stoppes.

END
    exit 0
}

[ "$1" = "-h" ] && { usage; }

vimver=6
[ "$1" = "-7" ] && { vimver=7; vimveropt=-7; shift; }
lv_lockdir=$HOME/.lag_vim$vimver.LOCK
[ "$1" = "-f" ] && { rmdir $lv_lockdir 2>/dev/null; shift; }
mkdir $lv_lockdir || { echo "lag_vim: $lv_lockdir: Lockdir eksisterer, avbryter." >&2; exit 1; }

[ "$1" = "-l" ] && { bruk_lokal=1; shift; }
unset ingen_patch
[ "$1" = "-p" ] && { ingen_patch=-p; shift; }
[ "$1" = "-x" ] && { med_x=1; shift; }

if [ "$bruk_lokal" != "1" ]; then
    update_vim-clean $vimveropt
fi

mincvs_vim $vimveropt $ingen_patch || { echo "Et eller annet speist skjedde med mincvs_vim. Kreperer." >&2; rmdir $lv_lockdir; exit 0; }

vimcompdir=$HOME/src/other/vim/vim$vimver
cd $vimcompdir || { echo "cd $vimcompdir; Ånn ðe tryn." >&2; rmdir $lv_lockdir; exit 0; }

x_flags="--enable-gui=no --without-x"
vim_size=huge

if [ -e $HOME/.petronas.mrk -o -e $HOME/.vagabond.mrk -o -e $HOME/.solsje.mrk -o -e $HOME/.devslx.mrk ]; then
    echo ======== Man er på petronas, vagabond, solsje eller developer.skolelinux.no . Lag lokal vim.
    vimdir=$HOME/local/prg/vim$vimver
else
    vimdir=/usr/local/prg/vim$vimver
    if [ "$med_x" = "1" ]; then
        echo ======== Fikk beskjed om å lage Vim$vimver med X og gode greia
        x_flags="--with-x --enable-gui=gtk"
    fi
fi

echo -e "======== ./configure --prefix=$vimdir --with-features=$vim_size --enable-multibyte $x_flags \x7B\x7B\x7B"
CFLAGS=-g
./configure --prefix=$vimdir --with-features=$vim_size --enable-multibyte $x_flags
echo -e "======== ./configure --prefix=$vimdir --with-features=$vim_size --enable-multibyte $x_flags \x7D\x7D\x7D"

echo -e "======== make \x7B\x7B\x7B"
make
echo -e "======== make \x7D\x7D\x7D"

if [ -e $HOME/.petronas.mrk -o -e $HOME/.vagabond.mrk -o -e $HOME/.solsje.mrk -o -e $HOME/.devslx.mrk ]; then
    echo Vi er på petronas, vagabond, solsje eller developer.skolelinux.no, så vi nøyer oss med:
else
    echo Hvis det gikk bra, er det på tide å bli root, og...
fi
echo "cd $vimcompdir && rm -rf $vimdir && make install && cp -vp src/vim $vimdir/bin/"

rmdir $lv_lockdir

# vim: set ts=4 sw=4 sts=4 et fenc=utf8 :
